<?php

/**
 * Реализация шифрования паролей с использованием DES.
 *
 */
class Security_Encryption_Des implements Security_Encryption_Interface
{
    /**
     * Шифрует указанный пароль.
     *
     * @param   string    $password
     * @return  string
     */
    public function encrypt($password)
    {
        return crypt($password, $this->_makeSalt());
    }

    /**
     * Сравнивает пароль, введенный пользователем с зашифрованным значением.
     *
     * @param   string  $password
     * @param   string  $encrypted
     * @return  boolean
     */
    public function compare($password, $encrypted)
    {
        return crypt($password, $encrypted) == $encrypted;
    }

    /**
     * Генерирует соль для шифрования.
     *
     * @return  string
     */
    private function _makeSalt() {
        // используем стандартное шифрование — такое же, как используется в PayPal
        return chr(rand(64, 126)) . chr(rand(64, 126));
    }
}
